package com.lifeverse.entity.enums;

/**
 * 决策状态枚举
 * 定义决策的执行状态
 */
public enum DecisionStatus {
    
    /**
     * 待处理 - 决策刚创建，等待处理
     */
    PENDING("待处理", "决策已创建，等待处理"),
    
    /**
     * 分析中 - 正在分析决策选项
     */
    ANALYZING("分析中", "正在分析决策选项和影响"),
    
    /**
     * 评估中 - 正在评估决策结果
     */
    EVALUATING("评估中", "正在评估各种决策方案"),
    
    /**
     * 已决策 - 决策已做出
     */
    DECIDED("已决策", "决策方案已确定"),
    
    /**
     * 执行中 - 决策正在执行
     */
    EXECUTING("执行中", "决策方案正在执行"),
    
    /**
     * 已完成 - 决策执行完成
     */
    COMPLETED("已完成", "决策执行完成"),
    
    /**
     * 已取消 - 决策被取消
     */
    CANCELLED("已取消", "决策被取消，不再执行"),
    
    /**
     * 执行失败 - 决策执行失败
     */
    FAILED("执行失败", "决策执行过程中失败"),
    
    /**
     * 需要重新评估 - 需要重新评估决策
     */
    NEEDS_REEVALUATION("需要重新评估", "环境变化，需要重新评估决策");
    
    private final String displayName;
    private final String description;
    
    DecisionStatus(String displayName, String description) {
        this.displayName = displayName;
        this.description = description;
    }
    
    public String getDisplayName() {
        return displayName;
    }
    
    public String getDescription() {
        return description;
    }
    
    /**
     * 判断是否为活跃状态
     */
    public boolean isActive() {
        return this == ANALYZING || this == EVALUATING || this == EXECUTING;
    }
    
    /**
     * 判断是否已完成
     */
    public boolean isCompleted() {
        return this == COMPLETED || this == CANCELLED || this == FAILED;
    }
    
    /**
     * 判断是否可以执行
     */
    public boolean canExecute() {
        return this == DECIDED;
    }
}